package com.servitware.cardio.domain;

import java.util.Date;

import com.servitware.crm.Contacto;
import com.servitware.crm.Domicilio;
import com.servitware.crm.Nif;
import com.servitware.crm.cliente.Cliente;
import com.servitware.crm.cliente.ClienteAutonomo;
import com.servitware.crm.cliente.ClienteEntidad;

public class ClienteDirecto implements Cliente
{
	private TipoClienteDirecto tipo = null;
	private Cliente cliente = null;
	
	private Integer reclutadoPor = null;
	private Integer atendidoPor = null;
	private Date fechaRegistro = null;

	public ClienteDirecto()
	{
		super();
		this.tipo = null;
	}

	public ClienteDirecto(TipoClienteDirecto tipo, ClienteAutonomo autonomo)
	{
		cliente = autonomo;
		this.tipo = TipoClienteDirecto.Autonomo;
	}

	public ClienteDirecto(TipoClienteDirecto tipo, ClienteEntidad entidad)
	{
		cliente = entidad;
		this.tipo = TipoClienteDirecto.Entidad;
	}

	public void setCliente(ClienteAutonomo autonomo)
	{
		cliente = autonomo;
		this.tipo = TipoClienteDirecto.Autonomo;
	}

	public void setCliente(ClienteEntidad entidad)
	{
		cliente = entidad;
		this.tipo = TipoClienteDirecto.Entidad;
	}

	
	public Integer getAtendidoPor()
	{
		return atendidoPor;
	}

	public void setAtendidoPor(Integer atendidoPor)
	{
		this.atendidoPor = atendidoPor;
	}

	public Date getFechaRegistro()
	{
		return fechaRegistro;
	}

	public void setFechaRegistro(Date fechaRegistro)
	{
		this.fechaRegistro = fechaRegistro;
	}

	public TipoClienteDirecto getTipo()
	{
		return tipo;
	}

	public void setTipo(TipoClienteDirecto tipo)
	{
		this.tipo = tipo;
	}

	public Cliente getCliente()
	{
		return cliente;
	}

	@Override
	public String getNombre()
	{
		return cliente.getNombre();
	}

	@Override
	public Nif getNif()
	{
		return cliente.getNif();
	}

	@Override
	public Domicilio getDomicilio()
	{
		return cliente.getDomicilio();
	}

	@Override
	public Contacto getContacto()
	{
		return cliente.getContacto();
	}

	@Override
	public String getCuentaBancaria()
	{
		return cliente.getCuentaBancaria();
	}

	@Override
	public int getId()
	{
		return cliente.getId();
	}

	public Integer getReclutadoPor()
	{
		return reclutadoPor;
	}

	public void setReclutadoPor(Integer reclutadoPor)
	{
		this.reclutadoPor = reclutadoPor;
	}

	
}
